package com.gxa.customer.service;

import com.gxa.common.commons.JsonResult;
import com.gxa.common.commons.R;
import com.gxa.common.pojo.AppUser;
import com.gxa.common.pojo.Country;

import java.util.List;
import java.util.Map;

public interface AppUserService {

    /**
     * 分页查询所有用户
     * @param begin
     * @param pageSize 每页显示数量
     * @return
     */
    public JsonResult selectUserByPage(Integer begin, Integer pageSize);


    /**
     * 通过手机号来查询用户信息的方法
     * @param phone 电话号码
     * @return
     */
    public AppUser selectUserByPhone(String phone);


    /**
     * 通过用户昵称查询用户信息
     * @param userNickName 用户昵称
     * @return
     */
    public AppUser selectUserByUserNickName(String userNickName);


    /**
     * 添加用户信息
     * @param phone 电话号码
     */
    public void insertAppUser(String phone);


    /**
     * 通过电话号码分页查询所有
     * @param pageNo
     * @param pageSize
     * @param phone
     * @return
     */
    public JsonResult selectUsersByItems(Integer pageNo, Integer pageSize, String phone, String userNickName);


    /**
     * 通过用户id修改用户账号状态的方法
     */
    public void updateStatus(Long id);


    /**
     * 通过用户id查询用户信息
     * @param id 用户id
     * @return
     */
    public AppUser selectUserById(Long id);


    /**
     * 更改账户信息的方阿飞
     * @param appUser 用户对象
     */
    public void updateUser(AppUser appUser);


    /**
     * 查询所有国家的方法
     * @return
     */
    public List<Country> selectAllCountry();

    /**
     * 查看用户收藏的商海信息
     * @param appUserId
     * @return
     */
    R findUserCollectionMerchant(Long appUserId);

    /**
     * 电话号码注册
     * @param phone
     * @return
     */
    int registerByPhone(String phone);

    /**
     * 通过手机号查询出该用户的信息返回给前端
     * @param phone
     * @return
     */
    Map<String,Object> findUserInfoByPhone(String phone);
}
